diff --git a/climax/main/preprocess.py b/climax/main/preprocess.py
index 75ec051a902211b67f77ee37bd13f56f0d1dec7b..f5f9c03a68d636283943a2c8cdeeb3d58af5e49a 100644
--- a/climax/main/preprocess.py
+++ b/climax/main/preprocess.py
@@ -100,9 +100,12 @@ if __name__ == '__main__':
                         ['{}'.format(file) for file in target]))
 
             # check whether to only print which files would be processed
-            if not args.dry_run:
-                # run reprojection in parallel
-                target = Parallel(n_jobs=-1, verbose=51)(
+            if args.dry_run:
+                LogConfig.init_log('Dry run. No files processed.')
+                sys.exit()
+
+            # run reprojection in parallel
+            target = Parallel(n_jobs=-1, verbose=51)(
                     delayed(reproject_cdo)(args.grid, src, trg, args.mode,
                                            args.overwrite)
                     for src, trg in zip(source, target))