diff --git a/bob/ip/binseg/engine/predictor.py b/bob/ip/binseg/engine/predictor.py
index f4fe00d9f92db44c498965f5a108b2b3937390c1..4e4640f05b82bef935fd6a70db03c82ba9e1e98f 100644
--- a/bob/ip/binseg/engine/predictor.py
+++ b/bob/ip/binseg/engine/predictor.py
@@ -40,10 +40,7 @@ def _save_hdf5(stem, prob, output_folder):
 
     fullpath = os.path.join(output_folder, f"{stem}.hdf5")
     tqdm.write(f"Saving {fullpath}...")
-    fulldir = os.path.dirname(fullpath)
-    if not os.path.exists(fulldir):
-        tqdm.write(f"Creating directory {fulldir}...")
-        os.makedirs(fulldir, exist_ok=True)
+    os.makedirs(os.path.dirname(fullpath), exist_ok=True)
     with h5py.File(fullpath, 'w') as f:
         data = prob.cpu().squeeze(0).numpy()
         f.create_dataset("array", data=data, compression="gzip",
@@ -71,10 +68,7 @@ def _save_image(stem, extension, data, output_folder):
 
     fullpath = os.path.join(output_folder, stem + extension)
     tqdm.write(f"Saving {fullpath}...")
-    fulldir = os.path.dirname(fullpath)
-    if not os.path.exists(fulldir):
-        tqdm.write(f"Creating directory {fulldir}...")
-        os.makedirs(fulldir, exist_ok=True)
+    os.makedirs(os.path.dirname(fullpath), exist_ok=True)
     data.save(fullpath)
 
 
@@ -128,13 +122,9 @@ def run(model, data_loader, device, output_folder, overlayed_folder):
     """
 
     logger.info(f"Output folder: {output_folder}")
-    logger.info(f"Device: {device}")
-
-    if not os.path.exists(output_folder):
-        logger.debug(f"Creating output directory '{output_folder}'...")
-        # protect against concurrent access - exist_ok=True
-        os.makedirs(output_folder, exist_ok=True)
+    os.makedirs(output_folder, exist_ok=True)
 
+    logger.info(f"Device: {device}")
     model.eval().to(device)
     # Sigmoid for predictions
     sigmoid = torch.nn.Sigmoid()