Smart contracts can't trigger themselves. Their functionality is always triggered by an EOA (Externally Owned Account). In this way the EOA also pays for the execution cost (gas).
So you can't make the contract push the payments in this way.
However, what you could do is make it a pull-based system. So you can add a withdrawal function which gives out dividends when someone calls it who has the proper access and it's the right timing. This is also much safer: pull schemas are considered much safer security-wise than push schemas. The only downside is that the investors need to initiate the transactions themselves, but you can just enable the contract to pay out all the dividends at once which haven't been paid out to the caller - for example if an investor calls the contract only once a year the contract can pay all the due dividends at once.