diff --git a/brian_dashboard_manager/templating/helpers.py b/brian_dashboard_manager/templating/helpers.py
index 01d1528aef000d486a659d66025ce6ada6084b2d..0996d0759668b302c5a4fd929f3b15ec761ad3b4 100644
--- a/brian_dashboard_manager/templating/helpers.py
+++ b/brian_dashboard_manager/templating/helpers.py
@@ -977,16 +977,19 @@ def get_dashboard_data(
     """
 
     with ProcessPoolExecutor(max_workers=NUM_PROCESSES) as executor:
-        for dash in executor.map(
-                partial(
-                    get_dashboard_data_single,
-                    datasource=datasource,
-                    tag=tag,
-                    panel_generator=panel_generator,
-                    errors=errors),
-                data.items()
-        ):
-            yield dash
+        try:
+            for dash in executor.map(
+                    partial(
+                        get_dashboard_data_single,
+                        datasource=datasource,
+                        tag=tag,
+                        panel_generator=panel_generator,
+                        errors=errors),
+                    data.items()
+            ):
+                yield dash
+        finally:
+            executor.shutdown(wait=False, cancel_futures=True)
 
 
 def create_aggregate_panel(title, gridpos, targets, datasource):