If you truly need an empty dataset, then use a DatasetBuilder.
Honestly though, without knowing exactly what you're trying to accomplish, I would say that I have never had a need in 7 years to "initialize" an empty dataset.
The project I'm working with has some session properties that are sometimes set to a dataset, sometimes set to a string. On loading a relevant page, I want that session prop to be an empty dataset with the appropriate columns and types preset. I thought it'd be easier to just create one from scratch instead of ensuring that prop isn't set to a string from anywhere else in the project.
Writing this down explicitly is making me second guess that decision lol. But that was the motivation for this post.