TL;DR: distributed is a separate package that dask does not install by default. Run `pip install "dask[distributed]"` and the Client import works.

## The error
```text
ModuleNotFoundError: No module named 'distributed'
```

## Fix it
1. Install distributed alongside dask:
   ```
   pip install "dask[distributed]"
   ```
   Expected: installs the distributed package.
2. Verify:
   ```
   python -c "from dask.distributed import Client; print('ok')"
   ```
   Expected: prints ok.
3. Conda equivalent: `conda install dask distributed`.

## When this applies
Use this when `from dask.distributed import Client` or `import dask.distributed` raises the missing-module error.

## When it does not apply
If you only use dask's threaded or single-machine schedulers, you do not need distributed at all. If distributed is installed but the import still fails, check you are in the right environment.

## Compatibility
All dask versions; distributed has always been a separate package.

## Root cause
dask core ships the schedulers and collections; the distributed scheduler (Client, clusters) lives in the separate distributed package so single-machine users stay light. Importing dask.distributed without it installed raises this error by design.

## Edge cases
dask and distributed versions must match closely; installing via the dask[distributed] extra keeps them in sync. A stale distributed install can raise a different import error; upgrade both together.