diff --git a/doc/python/pipeline_example_dask.py b/doc/python/pipeline_example_dask.py
index e1df7d89e0f1221b04f54e158a097cfa8db06146..d6e365a1570b5ab50ed48f304f5b614b5f1a9f5b 100644
--- a/doc/python/pipeline_example_dask.py
+++ b/doc/python/pipeline_example_dask.py
@@ -25,7 +25,7 @@ class MyFitTranformer(TransformerMixin, BaseEstimator):
     def __init__(self):
         self._fit_model = None
 
-    def transform(self, X):
+    def transform(self, X, metadata=None):
         # Transform `X`
         return [x @ self._fit_model for x in X]
 
@@ -40,7 +40,7 @@ X = numpy.zeros((2, 2))
 X_as_sample = [Sample(X, key=str(i), metadata=1) for i in range(10)]
 
 # Building an arbitrary pipeline
-model_path = "~/dask_tmp"
+model_path = "./dask_tmp"
 os.makedirs(model_path, exist_ok=True)
 pipeline = make_pipeline(MyTransformer(), MyFitTranformer())
 
@@ -48,13 +48,15 @@ pipeline = make_pipeline(MyTransformer(), MyFitTranformer())
 pipeline = bob.pipelines.wrap(
     ["sample", "checkpoint", "dask"],
     pipeline,
-    model_path=model_path,
+    model_path=os.path.join(model_path, "model.pickle"),
+    features_dir=model_path,
     transform_extra_arguments=(("metadata", "metadata"),),
 )
 
 # Create a dask graph from a pipeline
 # Run the task graph in the local computer in a single tread
 X_transformed = pipeline.fit_transform(X_as_sample).compute(scheduler="single-threaded")
+
 import shutil
 
 shutil.rmtree(model_path)
diff --git a/doc/python/pipeline_example_dask_sge.py b/doc/python/pipeline_example_dask_sge.py
index eba1709ec9655c1d9fdedba2ae3a7a76bac4a05a..ae071657619c18ee618286cacfd37f155cdd7bc7 100644
--- a/doc/python/pipeline_example_dask_sge.py
+++ b/doc/python/pipeline_example_dask_sge.py
@@ -28,7 +28,7 @@ class MyFitTranformer(TransformerMixin, BaseEstimator):
     def __init__(self):
         self._fit_model = None
 
-    def transform(self, X):
+    def transform(self, X, metadata=None):
         # Transform `X`
         return [x @ self._fit_model for x in X]
 
@@ -43,7 +43,7 @@ X = numpy.zeros((2, 2))
 X_as_sample = [Sample(X, key=str(i), metadata=1) for i in range(10)]
 
 # Building an arbitrary pipeline
-model_path = "~/dask_tmp"
+model_path = "./dask_tmp"
 os.makedirs(model_path, exist_ok=True)
 pipeline = make_pipeline(MyTransformer(), MyFitTranformer())
 
@@ -51,7 +51,8 @@ pipeline = make_pipeline(MyTransformer(), MyFitTranformer())
 pipeline = bob.pipelines.wrap(
     ["sample", "checkpoint", "dask"],
     pipeline,
-    model_path=model_path,
+    model_path=os.path.join(model_path, "model.pickle"),
+    features_dir=model_path,
     transform_extra_arguments=(("metadata", "metadata"),),
 )
 
@@ -62,6 +63,7 @@ client = Client(cluster)  # Creating the scheduler
 
 # Run the task graph in the local computer in a single tread
 X_transformed = pipeline.fit_transform(X_as_sample).compute(scheduler=client)
+
 import shutil
 
 shutil.rmtree(model_path)
diff --git a/doc/python/pipeline_example_dask_sge_adaptive.py b/doc/python/pipeline_example_dask_sge_adaptive.py
index 5f9e791c582d162804eaf94da57779efbb085570..5fab7e92920992004f8ee2a3fcbff16374ae581f 100644
--- a/doc/python/pipeline_example_dask_sge_adaptive.py
+++ b/doc/python/pipeline_example_dask_sge_adaptive.py
@@ -28,7 +28,7 @@ class MyFitTranformer(TransformerMixin, BaseEstimator):
     def __init__(self):
         self._fit_model = None
 
-    def transform(self, X):
+    def transform(self, X, metadata=None):
         # Transform `X`
         return [x @ self._fit_model for x in X]
 
@@ -43,7 +43,7 @@ X = numpy.zeros((2, 2))
 X_as_sample = [Sample(X, key=str(i), metadata=1) for i in range(10)]
 
 # Building an arbitrary pipeline
-model_path = "~/dask_tmp"
+model_path = "./dask_tmp"
 os.makedirs(model_path, exist_ok=True)
 pipeline = make_pipeline(MyTransformer(), MyFitTranformer())