This problem is called semi-discrete optimal transportation, you can find an algorithm in, e.g. :,
https://hal.science/hal-00604684/document
- Quentin Mérigot, A multiscale approach to optimal transport, Computer Graphics Forum, Volume 30, Issue 5, August 2011 [hal-00604684]