In terms of best practices on creating dashboards, notification channels & alerting policies using terraform. We would suggest creating these compartments in GCP using the the UI interface that is provided in GCP console as the interface is more friendlier and managable when planning to have around 20 monitoring workspace.
As such, you can automatize these compartment creations using Terraform and the available APIs that are available with Stackdriver Monitoring (Cloud Monitoring). However, you will need to create these scripts with Terraform in order to complete these tasks. Google currently does not have any documentation on best practices when using Terraform with Cloud Monitoring.
Furthermore, if you would like to know more about Terraforms best practices are, I would suggest following this link for more information on those factors when concidering using Terrafrom for creating dashboards, notification channels & alerting policies.