Mark __init_subclass__ as classmethod (#388)

diff --git a/astroid/tests/unittest_scoped_nodes.py b/astroid/tests/unittest_scoped_nodes.py
index 0eb2afa..e6ba9ec 100644
--- a/astroid/tests/unittest_scoped_nodes.py
+++ b/astroid/tests/unittest_scoped_nodes.py
@@ -572,6 +572,16 @@
         self.assertIsInstance(last_child, nodes.Return)
         self.assertEqual(func.tolineno, 5)
 
+    @test_utils.require_version(minver='3.6')
+    def test_method_init_subclass(self):
+        klass = builder.extract_node('''
+        class MyClass:
+            def __init_subclass__(cls):
+                pass
+        ''')
+        method = klass['__init_subclass__']
+        self.assertEqual([n.name for n in method.args.args], ['cls'])
+        self.assertEqual(method.type, 'classmethod')
 
 
 class ClassNodeTest(ModuleLoader, unittest.TestCase):
diff --git a/astroid/tree/scoped_nodes.py b/astroid/tree/scoped_nodes.py
index 7e44b27..626c10e 100644
--- a/astroid/tree/scoped_nodes.py
+++ b/astroid/tree/scoped_nodes.py
@@ -13,6 +13,7 @@
 Lambda, GeneratorExp, DictComp and SetComp to some extent).
 """
 
+import sys
 import collections
 import io
 import itertools
@@ -915,6 +916,8 @@
         if isinstance(frame, ClassDef):
             if self.name == '__new__':
                 return 'classmethod'
+            elif sys.version_info >= (3, 6) and self.name == '__init_subclass__':
+                return 'classmethod'
             else:
                 type_name = 'method'