Implement Dataset as context manager
When used as context manager, it would be safely deleted if some exception is raised.

This will avoid 
> During handling of the above exception, another exception occurred: