I used to run Ubuntu, but I see less and less reasons to do so these days. It's too complex and brittle. I can't understand it, and many of its components either deviate significantly from upstream due to excessive patching or they are non-standard things.
If I want to run a simple imperative distribution, where everything is understandable and packages follow upstream, I run Arch. I used to run Slackware, but the number of dependencies has grown exponentially. So dependency resolution is needed, and Arch follows Slackware ethos very closely. With the introduction of systemd, it provides vanilla packages and almost nothing else. It's literally what you get when you turn Linux from Scratch into a binary distribution.
For most things, I'm going a step further, and I run a functional distribution. NixOS is great, and GuixSD shows some promise. Functional-ness brings a lot of peace of mind. I love having declarative and reproducible setups.
Interestingly, the only two distributions where I have had zero problems setting up Keras and PyTorch are both Arch and NixOS.
Choose your way. Either imperative and very simple (Arch, Void) or functional (NixOS, GuixSD). I think there are a lot less advantages running regular distros (Ubuntu, Fedora).
I upgraded my 16.04 vm's to 18.04, and 18.04.1 is out so it super stable. Everything works.
Only thing different I did, uninstalled snap and installed spotify from a repo, but that repo has been giving key errors sometimes.