The main requirement for a framework is that it offers a `concurrent.futures.Executor` like interface. - [dask](https://docs.dask.org/en/latest/futures.html) - [mpi4py](https://mpi4py.readthedocs.io/en/stable/mpi4py.futures.html#mpipoolexecutor) - ray is still working on the interface: `https://github.com/ray-project/ray/pull/41126`.