I’ve been working on an open source tool to help with reproducible research, which leverages DVC quite a bit. I recently added a feature that some may find helpful. You can add a cell magic to a Jupyter Notebook cell to turn it into a DVC pipeline stage, which will then be run in a separate process so you can have full control over the cell’s dependencies, outputs, and make use of DVC’s caching functionality.
I put up a tutorial here.