What is the most cost-effective way to distribute a Bitcoin into 1000 different addresses?
The best/cheaper way to split a single address into multiple is using batching transactions:

Batching explained in StackOverflow

This blog post from David Harding shows what are the saving possibilities when using batching to send your transfers and how it works:

Batching savings

Samourai Wallet supports batching if you don't want to use api's.