Can someone explain why should I pick this over scikit?
I don't have any ML exp. I found ML quite magically :/ and totally difficult to start if you don't have a phd in mathematics
Scikit is for non-deep learning machinelearning algorithms only (It does support neural networks in the latest version, but only uses the cpu to train data).
TLDR: Use Tensorflow for deeplearning, use Scikit for other ML algorithms.
Scikit doesn't support GPUs, which makes it infeasible to run the sort of deep learning stuff that's currently making waves. The competitors to tensorflow are torch, caffe, and maybe Microsoft's CN(something, but not "Y")K.
To get started, keras is an excellent library that's build on top of tensorflow and has recently become an official part of it.
TensorFlow is low-level. scikit or sklearn is high level off-the-shelf ML, apply this algorithm to this dataset with these parameters.
TFlearn is a high-level off-the-shelf library built on TensorFlow, giving you some of the benefits e.g. GPU.
It's hard to get state of the art results using off-the-shelf algorithms, unless your problem is very vanilla you typically need to get under the hood and do custom hyperparameters and tuning. That's why ML competitions like Kaggle are interesting, there are so many ways to skin the cat you can't capture them all in off-the-shelf libraries.
But you can get very useful results with a lot less effort using sklearn and TFlearn off-the-shelf.
Didn't tflearn become tensorflow.contrib.learn? So there's technically a high level API in the TF standard library. Though Keras would probably be a better choice if OP wanted a high level API for deep learning.
A version of Keras is included in Tensorflow since 1.1 as well, under `tensorflow.contrib.keras.python.keras`. (This has been particularly useful for me as a Windows user, since my GTX 1080 is stuck in a Windows machine, and it's a little more painful to deal with upstream Keras dependencies on Windows, but TF alone works great)
Tensorflow implements the (really abstract, at least for me) concept of a computational graph. Think of it as nodes being values and edges operations.
Among other things, what this allows you to do is partition your computational graph into different subgraphs and run each subgraph on parallel.
Sklearn doesn't allow you to run things on parallel; however, I do agree that TF doesn't have a favorable learning curve, so you might want to start with SKlearn (or TFLearn) to get to know the basics of ML first.