rows returns 404 instead of 500 on dataset error
For example, https://datasets-server.huggingface.co/rows?dataset=atomic&config=atomic&split=train returns 404, Not found. It should instead return a detailed error which helps the user debug, as it's done on all the cached responses. /rows is special, as it's created on the fly, but it should stick with the same logic: copying the previous step error:

It should return

```
500
{
  "error": "Couldn't get the size of external files in `_split_generators` because a request failed:\n404 Client Error: Not Found for url: https://maartensap.com/atomic/data/atomic_data.tgz\nPlease consider moving your data files in this dataset repository instead (e.g. inside a data/ folder).",
  "cause_exception": "HTTPError",
  "cause_message": "404 Client Error: Not Found for url: https://maartensap.com/atomic/data/atomic_data.tgz",
  "cause_traceback": [
    "Traceback (most recent call last):\n",
    " File \"/src/services/worker/src/worker/job_runners/config/parquet_and_info.py\", line 506, in raise_if_too_big_from_external_data_files\n for i, size in enumerate(pool.imap_unordered(get_size, ext_data_files)):\n",
    " File \"/usr/local/lib/python3.9/multiprocessing/pool.py\", line 870, in next\n raise value\n",
    " File \"/usr/local/lib/python3.9/multiprocessing/pool.py\", line 125, in worker\n result = (True, func(*args, **kwds))\n",
    " File \"/src/services/worker/src/worker/job_runners/config/parquet_and_info.py\", line 402, in _request_size\n response.raise_for_status()\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/requests/models.py\", line 1021, in raise_for_status\n raise HTTPError(http_error_msg, response=self)\n",
    "requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://maartensap.com/atomic/data/atomic_data.tgz\n"
  ],
  "copied_from_artifact": {
    "kind": "config-parquet-metadata",
    "dataset": "atomic",
    "config": "atomic",
    "split": null
  }
}
```
rows returns 404 instead of 500 on dataset error: For example, https://datasets-server.huggingface.co/rows?dataset=atomic&config=atomic&split=train returns 404, Not found. It should instead return a detailed error which helps the user debug, as it's done on all the cached responses. /rows is special, as it's created on the fly, but it should stick with the same logic: copying the previous step error:

It should return

```
500
{
  "error": "Couldn't get the size of external files in `_split_generators` because a request failed:\n404 Client Error: Not Found for url: https://maartensap.com/atomic/data/atomic_data.tgz\nPlease consider moving your data files in this dataset repository instead (e.g. inside a data/ folder).",
  "cause_exception": "HTTPError",
  "cause_message": "404 Client Error: Not Found for url: https://maartensap.com/atomic/data/atomic_data.tgz",
  "cause_traceback": [
    "Traceback (most recent call last):\n",
    " File \"/src/services/worker/src/worker/job_runners/config/parquet_and_info.py\", line 506, in raise_if_too_big_from_external_data_files\n for i, size in enumerate(pool.imap_unordered(get_size, ext_data_files)):\n",
    " File \"/usr/local/lib/python3.9/multiprocessing/pool.py\", line 870, in next\n raise value\n",
    " File \"/usr/local/lib/python3.9/multiprocessing/pool.py\", line 125, in worker\n result = (True, func(*args, **kwds))\n",
    " File \"/src/services/worker/src/worker/job_runners/config/parquet_and_info.py\", line 402, in _request_size\n response.raise_for_status()\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/requests/models.py\", line 1021, in raise_for_status\n raise HTTPError(http_error_msg, response=self)\n",
    "requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://maartensap.com/atomic/data/atomic_data.tgz\n"
  ],
  "copied_from_artifact": {
    "kind": "config-parquet-metadata",
    "dataset": "atomic",
    "config": "atomic",
    "split": null
  }
}
```