Sometimes feature extraction/data loading is time-consuming, but the whole dataset can easily fit into memory. Jupyter has the advantage of working on "a live organism": I can load the data once, tweak the model parameters until I'm happy with the results, then just export the script into regular Python file and refactor.