diff --git a/bindings/distrdf/python/DistRDF/Backends/Dask/Backend.py b/bindings/distrdf/python/DistRDF/Backends/Dask/Backend.py index 84a9a0bbd4abc..b1c02d3d5e541 100644 --- a/bindings/distrdf/python/DistRDF/Backends/Dask/Backend.py +++ b/bindings/distrdf/python/DistRDF/Backends/Dask/Backend.py @@ -104,6 +104,17 @@ def __init__(self, daskclient: Optional[Client] = None): # N is the number of cores on the local machine. self.client = (daskclient if daskclient is not None else Client(LocalCluster(n_workers=os.cpu_count(), threads_per_worker=1, processes=True))) + + workers = self.client.scheduler_info()["workers"] + + for worker in workers.values(): + threads = worker.get("nthreads", 1) + + if threads > 1: + raise RuntimeError( + "DistRDF with Dask does not support threaded workers. " + "Please use processes=True and threads_per_worker=1." + ) def optimize_npartitions(self) -> int: """