There's a bunch of options to execute `df.apply` in parallel. `swifter` or `dask` are such options to benchmark vs native implementation as here. More importantly, why not use the Huggingface dataset's built-in parallelized [`map`](https://huggingface.co/docs/datasets/en/process#multiprocessing)?